package com.twb.core.base.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.twb.core.base.entity.BaseEntity;

public interface IBaseService<T> extends IService<T> {
	/**
	 * @Title  setCreateInfo
	 * @Description 新增业务数据时，添加保存时间、保存人、版本号以及删除标识
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2018年11月9日 下午6:16:50
	 */
	public <E extends BaseEntity> E setCreateInfo(E record);
	
	/**
	 * @Title  setUpdateInfo
	 * @Description 更新业务数据时，添加更新人、更新时间信息
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2018年11月9日 下午6:16:22
	 */
	public <E extends BaseEntity> E setUpdateInfo(E record);
	
	/**
	 * @Title  getUUID
	 * @Description 获取UUID
	 * @return
	 * @author DSY
	 * @date 2018年11月14日 下午3:59:43
	 */
	public String getUUID();
	
	/**
	 * @Title remove
	 * @Description 删除，根据实体类条件
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2021年12月12日 下午5:22:02
	 */
	public boolean remove(T record);
	
	/**
	 * @Title count
	 * @Description 查询数量，根据实体类条件
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2021年12月12日 下午5:22:09
	 */
	public long count(T record);
	
	/**
	 * @Title list
	 * @Description 列表查询，根据实体类条件
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2021年12月12日 下午5:46:41
	 */
	public List<T> list(T record);
	
	/**
	 * @Title getOne
	 * @Description
	 * @param record
	 * @return
	 * @author DSY
	 * @date 2021年12月13日 下午7:27:45
	 */
	public T getOne(T record);
	
}
